<?php
/**
 * 验证码
 * @author yangdong
 *
 */
namespace User\Model;
use Com\Message;
use Think\Model;
class CodeModel extends Model {
	protected $tableName 	= 'user_code';
	protected $pk        	= 'phone';
	
	/**
	 * 根据手机号获取验证码
	 * @return array
	 */
	function getCode(){
		$phone = I('phone');
		$code  = rand(100000, 999999);
		if (!$phone) return showData(new \stdClass(), '请输入手机号', 1);
        $result=$this->where(array('phone'=>$phone))->find();
        if(empty($result)){
            if ($this->add(array('phone'=>$phone, 'code'=>$code,'createtime'=>NOW_TIME,'deadline'=>NOW_TIME + 60))) {
                Message::send($phone,'尊敬的用户：您好！本次验证码为：'.$code.'，如非本人操作，请忽略此信息，有效时间1分钟');
                return showData(array('code'=>$code));
            }else {
                return showData(new \stdClass(), '获取失败，请稍侯再试！', 3);
            }
        }else{
            if($result['deadline'] > NOW_TIME){
                return showData(new \stdClass(), '请不要重复获取验证码', 2);
            }else{
                $this->where(array('phone'=>$phone))->delete();
                if ($this->add(array('phone'=>$phone, 'code'=>$code,'createtime'=>NOW_TIME,'deadline'=>NOW_TIME + 60))) {
                    Message::send($phone,'尊敬的用户：您好！本次验证码为：'.$code.'，如非本人操作，请忽略此信息，有效时间1分钟');
                    return showData(array('code'=>$code));
                }else {
                    return showData(new \stdClass(), '获取失败，请稍侯再试！', 3);
                }
            }
        }
	}
	/**
	 * 验证验证码
	 */
	function checkCode(){
		$phone = I('phone');
		$code  = I('code');
		if (!$phone) return showData(new \stdClass(), '请输入手机号', 1);
		if (!$code) return showData(new \stdClass(), '请输入验证码', 2);
		$info = $this->where(array('phone'=>$phone))->find();
		if ($info) {
		    if($info['deadline']<NOW_TIME){
		        return showData(new \stdClass(),'验证码已过期',3);
            }
            if($info['code']!=$code){
                return showData(new \stdClass(),'验证码错误',4);
            }
			return showData(new \stdClass(), '验证成功');
		}else {
			return showData(new \stdClass(), '验证失败，请稍候尝试', 5);
		}
	}
}